/*
 * MyMatrix.h
 *
 *  Created on: 04/10/2012
 *      Author: vagner
 */

#ifndef MYMATRIX_H_
#define MYMATRIX_H_
#include <cstdio>

namespace tp2cn {

union Data{
	int intValor;
	double realValor;
};

typedef struct{
	Data valor;
} Item;


class MyMatrix {
private:
	int numLinhas;
	int numColunas;
	Item** matrix;
	MyMatrix();
	void inicializaMatriz(float valor);

	bool isIntervaloValido(int linha, int coluna){
		if( (linha >= 0 && linha < this->numLinhas) &&
			(coluna >= 0 && coluna < this->numColunas)){
			return true;
		}else{
			return false;
		}
	}
public:
	MyMatrix(int linhas, int colunas, float valorInicial);
	void insereItem(Item& i, int linha, int coluna);
	Item& getItem(int linha, int coluna);
	int getNumLinhas();
	int getNumColunas();
	void reinicia(float& novoValor);
	void show(void) const;
	virtual ~MyMatrix();
};


}  // namespace tp2cn


#endif /* MYMATRIX_H_ */
